# 启用编译数据库生成（全局生效）
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# 设置最低CMake 版本要求
cmake_minimum_required(VERSION 3.10)
# 设置项目名称
project(ThreadPoolCpp VERSION 1.0.0 LANGUAGES CXX)
# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 包含头文件目录
include_directories(
    ${PROJECT_SOURCE_DIR}/include
)
# 查找所有源文件
file(GLOB_RECURSE LIBRARY_SOURCES "src/thread_pool.cpp")
file(GLOB_RECURSE TEST_SOURCES "test/test.cpp")
# 添加库（可选，如果想生成动态/静态库）
add_library(thread_pool STATIC ${LIBRARY_SOURCES})
# 添加可执行文件
# 这里为了简单直接将库和测试文件一起编译为一个可执行文件
add_executable(main ${LIBRARY_SOURCES} ${TEST_SOURCES})
# 链接库 (对于 std::thread 等，通常不需要显式链接 pthread)
target_link_libraries(main thread_pool) # 如果上面创建了库，则链接库
target_link_libraries(main pthread) # 现代C++编译器通常会自动链接，但旧版本或某些系统可能需要
# 清理中间的.o文件
set_target_properties(main PROPERTIES CLEAN_DIRECT_OUTPUT 1)
